﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DTO;
using BUS;

namespace FastDeal
{
    public partial class QuanLyDiaDiem : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["DaDangNhap"] == null || (bool)Session["DaDangNhap"] == false)
            {
                Response.Redirect("~/Default.aspx");
            }
            if ((int)Session["LoaiThanhVien"] != 1)
            {
                Response.Redirect("~/Default.aspx");
            }

            if (!IsPostBack)
            {
                LoadDSDiaDiem();
            }
        }
        List<DiaDiem> list = new List<DiaDiem>();
        DiaDiem dd = new DiaDiem();
        DiaDiem_BUS ddBUS = new DiaDiem_BUS();
        private void LoadDSDiaDiem()    
        {
            IQueryable ilist;
            ilist = ddBUS.HienThiDSDiaDiem();
            gvDSDiaDiem.DataSource = ilist;
            gvDSDiaDiem.DataBind();
            gvDSDiaDiem.Columns[0].Visible = false;      
        }

        protected void gvDSDiaDiem_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void gvDSDiaDiem_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int viTri = e.RowIndex;
            int maXoa = Convert.ToInt32(gvDSDiaDiem.DataKeys[viTri].Value.ToString());
            dd.MaDiaDiem = maXoa;
            ddBUS.Xoa_DiaDiem(dd);
            LoadDSDiaDiem();
        }

        protected void gvDSDiaDiem_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            // trả lại -1 -> ko có giá trị nào được chọn
            gvDSDiaDiem.EditIndex = -1;
            LoadDSDiaDiem();
        }

        protected void gvDSDiaDiem_RowEditing(object sender, GridViewEditEventArgs e)
        {
            // lấy giá trị hiện tại của cột địa phương
            string dpHienTai = ((Label)gvDSDiaDiem.Rows[e.NewEditIndex].Cells[6].FindControl("lbDiaPhuong")).Text;

            // chuyển sang trạng thái edit
            gvDSDiaDiem.EditIndex = e.NewEditIndex;
            LoadDSDiaDiem();

            DiaPhuong_BUS dpBUS = new DiaPhuong_BUS();
            List<DiaPhuong> listdp = new List<DiaPhuong>();
            listdp = dpBUS.LayDanhSach_DiaPhuong();

            // tìm control ddlDiaPhuong ở trạng thái edit
            DropDownList ddlDiaPhuong1 = (DropDownList)gvDSDiaDiem.Rows[e.NewEditIndex].Cells[6].FindControl("ddlDiaPhuong");
            ddlDiaPhuong1.DataSource = listdp;
            ddlDiaPhuong1.DataTextField = "TenDiaPhuong";
            ddlDiaPhuong1.DataValueField = "MaDiaPhuong";
            ddlDiaPhuong1.DataBind();
            
            // chọn lại dòng hiện tại của ddlDiaPhuong theo đúng giá trị đã hiển thị
            for (int i = 0; i < listdp.Count; i++)
            {
                if (listdp[i].TenDiaPhuong.ToString() == dpHienTai)
                {
                    ddlDiaPhuong1.SelectedIndex = i;
                    break;
                }
            }             
        }

        protected void gvDSDiaDiem_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            // nếu dữ liệu mới bằng dữ liệu cũ thì ko thay đổi csdl
            if (e.NewValues == e.OldValues)
            {
                e.Cancel = true;
            }
            else
            {
                //gvDSDiaDiem.Columns[0].Visible = true;
                //dữ liệu đã được thay đổi
                int maDiaDiem = Convert.ToInt32(((Label)gvDSDiaDiem.Rows[e.RowIndex].Cells[0].FindControl("lbMaDiaDiem")).Text.ToString());
                String tenDiaDiem = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[1].FindControl("txtTenDiaDiem")).Text.ToString();
                String soNha = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[2].FindControl("txtSoNha")).Text.ToString();
                String tenDuong = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[3].FindControl("txtTenDuong")).Text.ToString();
                String phuong = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[4].FindControl("txtPhuong")).Text.ToString();
                String quan = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[5].FindControl("txtQuan")).Text.ToString();
                int diaPhuong = Convert.ToInt32(((DropDownList)gvDSDiaDiem.Rows[e.RowIndex].Cells[6].FindControl("ddlDiaPhuong")).SelectedValue.ToString());

                String dienThoai = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[7].FindControl("txtDienThoai")).Text.ToString();
                String kinhDo = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[8].FindControl("txtKinhDo")).Text.ToString();
                String viDo = ((TextBox)gvDSDiaDiem.Rows[e.RowIndex].Cells[9].FindControl("txtViDo")).Text.ToString();

                dd.MaDiaDiem = maDiaDiem;
                dd.TenDiaDiem = tenDiaDiem;
                dd.SoNha = soNha;
                dd.TenDuong = tenDuong;
                dd.Phuong = phuong;
                dd.Quan = quan;
                dd.MaDiaPhuong = diaPhuong;
                dd.DienThoai = dienThoai;
                dd.KinhDo = kinhDo;
                dd.ViDo = viDo;

                // update csdl
                ddBUS.Sua_DiaDiem(dd);

                // tắt trạng thái sửa của gv
                gvDSDiaDiem.EditIndex = -1;
                LoadDSDiaDiem();

            }
        }

        protected void btnThem_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Admin/ThemDiaDiem.aspx");
        }
    }
}